home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 001a / szmod160.zip / SZMODEM.DOC < prev    next >
Text File  |  1991-08-21  |  48KB  |  1,004 lines

  1. SZMODEM ver 1.60
  2. -----------------
  3. By Scott M. Baker
  4.  
  5.  
  6. What is SZModem?
  7.  
  8.          SZModem is a zmodem-compatible protocol with a few added features. It
  9.    is fully compatible with normal zmodem, but adds special capabilities both
  10.    when talking to normal zmodems and while talking to other copies of
  11.    SZModem.
  12.          The main idea behind SZModem is that you should be able to do other
  13.    things while the transfer is taking place. Rather than have your computer
  14.    tied up for an hour downloading a file, you can move around in the SDOS
  15.    window and do directory maintenance, etc...
  16.  
  17. What will it do?
  18.  
  19.       While SZModem is transferring a file, you may do the following:
  20.  
  21.       Connected to a "normal" zmodem such as DSZ.
  22.  
  23.           - List files marked for upload
  24.           - List files received as they are received
  25.           - Uses SDOS (simulated dos) to view directories, copy files,
  26.             etc while the transfer is taking place.
  27.           - View file contents as the file is being received (good for
  28.             text files)
  29.           - Play single-player games while transferring.
  30.           - Built in mail reader allows sysops who are using a BBS program
  31.             that uses FIDO message formats to read mail while transferring.
  32.  
  33.       Connected to another copy of SZModem.
  34.  
  35.           - All of the above capabilities
  36.           - A "chat" mode allows the two sides to talk to each other.
  37.           - Play multiplayer games such as Four-In-A-Row
  38.           - The sender will automatically send a "advance transfer list"
  39.             listing the files to be sent. This way, the receiver knows
  40.             what he is receiving.
  41.           - SZTurbo option allows SZModem to pass flow control characters
  42.             unaltered across the modem. This allows for up to a four percent
  43.             effeciency gain over normal Zmodem.
  44.           - Ability to use large zmodem packet lengths - up to 2048 bytes
  45.             at 2400 baud and 4096 bytes for higher speeds.
  46.  
  47. Command specifics
  48. -----------------
  49.  
  50.    F1 - Transfer (send) list
  51.  
  52.          This command will produce a windowed list of the files that have
  53.      been sent, aborted, marked for sending, etc. Included is the file
  54.      name, size, and all other pertinant information. You may use the up
  55.      and down arrows if necessary to scroll the list.
  56.          Pressing F1 again (i.e. while you are already in TLIST) will toggle
  57.      between the file-information list and the file-description list.
  58.  
  59.    F2 - Received file list
  60.  
  61.          This command will produce a listing of the files are have been
  62.      received. Similar to the "F1" list above, you may use the up/down
  63.      arrows to scroll the list. THe list is updated as files are received.
  64.          If you are connected to another copy of SZModem, the sender
  65.      will transmit a special "advance transfer list" containing a listing
  66.      of the files that will be sent. This list will be displayed with the
  67.      F2 command.
  68.          As with F1 above, pressing F2 again will toggle betweem the file
  69.      information display and the file description display.
  70.  
  71.    F3 - SDOS (simulated dos)
  72.  
  73.          SDOS is a special dos emulator that lets you perform a variety of
  74.      operations while the transfer is taking place. You can copy/move files,
  75.      list directories, change attributes, etc - most of the common things you
  76.      do with normal dos.
  77.          You may get a listing of supported SDOS commands by typing "HELP"
  78.      at the dos prompt. Typing help with a command name (i.e. HELP DIR) will
  79.      display help for that specific command.
  80.          Most SDOS commands are pseudo-multitasked as to not interfere with
  81.      the transfer, although with high speed modems (i.e. 14,400 baud and
  82.      up) the transfer may slow down during disk-intensive operations.
  83.  
  84.    F4 - COMM PARAMS
  85.  
  86.          This command will pop up a display of the current communications
  87.      parameters - baud rate, parity, buffer status, etc. It can be useful in
  88.      debugging difficulties.
  89.  
  90.    F5 - VIEW
  91.  
  92.          Pressing F5 will allow you to "view" the transfer as it is taking
  93.      place. You will actually see the characters of the file, zmodem
  94.      handshaking, and line noise as it takes place.
  95.          If you press F5 while you are already in the view window, you will
  96.      toggle the view mode. There are 6 different modes. Here is a listing:
  97.  
  98.            1 - Direct ascii printing of characters as they are sent or recvd
  99.            2 - Ascii print only RECEIVED characters
  100.            3 - Ascii print only TRANSMITTED characters
  101.            4 - HEX printing of transmitted and received characters
  102.            5 - HEX printing of only received characters
  103.            6 - HEX printing of only transmitted characters
  104.  
  105.          The modes will cycle one at a time each time you press F5. Initially,
  106.      this whole idea of the view mode was simply a debugging option for me,
  107.      but I figure some users might like to watch the transfer taking place.
  108.  
  109.    F6 - MESSAGES
  110.  
  111.          The message display shows a log of the various messages that SZModem
  112.      displays on the screen - CRC Error, Waiting for ZRINIT, stuff like that.
  113.  
  114.    F7 - CHAT
  115.  
  116.          This command can only be used when two SZModems are connected to
  117.      each other - it won't work with a normal Zmodem. The chat mode allows
  118.      you to talk to the user at the other end of the transfer. The screen
  119.      will be split into two windows - one for what you type, one for what
  120.      the other guy types.
  121.          Pressing CTRL-G will page the other user if he isn't at his
  122.      terminal. The page will beep for thirty seconds, one beep every
  123.      three seconds.
  124.  
  125.    F8 - GAMES
  126.  
  127.          The games menu will be displayed and you can select a game to play
  128.      while the transfer is taking place. There are two kinds of games -
  129.      single player games which to play by yourself and multiplayer games
  130.      in which you play against the guy on the other end.
  131.          The single player games may be player no matter what you are
  132.      connected to, but the multiplayer games require you to be connected to
  133.      another copy of SZModem.
  134.  
  135.    F9 - MAIL READER
  136.  
  137.          This is a feature designed to be used by the sysops of Bulletin
  138.      Boards which have a FIDO compatible message format. (See the below
  139.      section on "The Mail Reader" for info on setting up this feature)
  140.          By pressing F9, the sysop will be allowed to read messages in the
  141.      chosen message base. There are several additional UNLISTED keys available
  142.      in this window:
  143.  
  144.          "N"  Move forward one message
  145.          "P"  Move backwards one message
  146.       <Space> If the message is more than one screen, this will scroll the
  147.               window.
  148.  
  149.    F10 - EXIT
  150.  
  151.          This brings you the exit option which aborts all files and returns
  152.      you to the DOS prompt.
  153.  
  154. COMMAND LINE OPTIONS
  155. --------------------
  156.        SZModem was designed specially to have a command line similar to the
  157. popular DSZ Zmodem protocol. This way users with an understanding of DSZ
  158. can easily set up SZModem. The options area as follows:
  159.  
  160. "SZMODEM <options> <transfer type> <filenames>"
  161.  
  162. Options can be any one of the following:
  163.  
  164.    "PORT x"     specifies using comport x. (i.e. "PORT 2" would use com2)
  165.  
  166.    "SPEED x"    specifies the baud rate (i.e. "SPEED 2400 would use 2400 baud)
  167.  
  168.    "IRQ x"      specifies a nonstandard IRQ. (NOTE: please specify the
  169.                 address in DECIMAL, not HEX). You must supply BOTH an IRQ
  170.                 and an address to use nonstandard ports.
  171.  
  172.    "ADDR x"     specifies a nonstandard ADDRESS. (NOTE: please specify
  173.                 the address in decimal, not hex). You must supply BOTH an IRQ
  174.                 and and address to use nonstandard ports.
  175.  
  176.    "/NOLOG"     disables logging to the "SZMODEM.LOG" file.
  177.  
  178.    "/M"         monochrome mode.
  179.  
  180.    "/DORINFO x" Specifies the node number of a dorinfo.def file to grab the
  181.                 user's name from. If you specify this option, SZModem will
  182.                 load in the dorinfo, get the user name, and display it in
  183.                 the screen so you know who is downloading. (I.e. specifying
  184.                 "/DORINFO 1" would load in "DORINFO1.DEF")
  185.  
  186.    "/INSIZE x"  Specifies the size (in bytes) of the internal comm input
  187.                 buffer. (Note: not used if using fossil)
  188.  
  189.    "/OUTSIZE x" Specifies the size (in bytes) of the internal comm output
  190.                 buffer. (Note: Not used if using fossil)
  191.  
  192.    "/SZPATH x"  Specifies a path to which the SZXFER$$.LST and SZMODEM.LOG
  193.                 files will be written to. If not specified, the files will
  194.                 be created in the current directory.
  195.  
  196.  "/DELAYTIME x" SZModem by default will wait 5 seconds at the end of
  197.                 transfer for a keypress to before exiting. BBS sysops may
  198.                 wish to lower this time for faster operation. The "x"
  199.                 specifies the default time to delay, which may be
  200.                 from 0-30 seconds. (NOTE: /DELAYTIME can be abbreviated
  201.                 /DT)
  202.  
  203.    "/SZTURBO"   Causes SZModem to attempt to use the SZTurbo option if
  204.                 possible. If SZTurbo is to operate, both sides must have this
  205.                 option set. See "SZTURBO" below. (NOTE: /SZTURBO can be
  206.                 abbreviated /SZT)
  207.  
  208.    "/NBS"       This stands for "normal block size". By default, if two
  209.                 SZmodem's are connected, they will allow the Zmodem packet
  210.                 length to rise to 2048 bytes/packet at 2400 baud or 4096
  211.                 bytes/packet for higher speeds. Specifying "/NBS" will force
  212.                 SZModem to use block lengths of 1024 bytes or less.
  213.  
  214.    "/NORBL"     Will cause your copy of SZModem to refuse to accept LARGE
  215.                 format (i.e. embedded file description info) advance transfer
  216.                 lists.
  217.  
  218.    "/NOSBL"     Will cause your copy of SZModem to refuse to send LARGE
  219.                 format (i.e. embedded file description info) advance transfer
  220.                 lists.
  221.  
  222.    "/FL"        This will cause SZModem to create an additional log file
  223.                 called "FILELOG.TXT". This log is intended to allow users to
  224.                 keep a record of files they receive. It only logs RECEIVED
  225.                 files and it includes the name, size, and optional description
  226.                 of the file.
  227.  
  228.    "/NOPAGE"    This will prevent another copy of SZModem from paging your
  229.                 copy.
  230.  
  231.   "/FILEDESC x" This specifies an additional FILEDESC list of file
  232.                 descriptions. "x" is the path and filename of the file. See
  233.                 "Large Advance Transfer Lists" for more info.
  234.  
  235.    "/CHECKSNOW" If you are using a CGA card and it gets snow, try using this
  236.                 option.
  237.  
  238.  "/FIDOAREA x"  REMOVED - see the revised section of MAIL below.
  239.  
  240.    "/EGA"       If you have an EGA or VGA display, this switch will enable the
  241.                 43/50 line modes.
  242.  
  243.    "/DL"        This option will cause SZModem to create a DSZ.LOG file. This
  244.                 file will contain a DSZ-style log. This option may be used
  245.                 with BBS programs that require a DSZ.LOG file to operate their
  246.                 external protocols. SZMODEM also will enable the DSZ.LOG if
  247.                 the environment variable "DSZLOG=xxx" is used.
  248.  
  249.    "/CFGPATH x" Specifies a path to where the configuration file (SZMODEM.CFG)
  250.                 can be found. "x" is the path with or without a trailing
  251.                 backslash. It doesn't matter.
  252.  
  253.    "/HARD"      This turns on HARD flow control. This means that when your
  254.                 modem drops CTS, SZModem will stop transmitting until CTS
  255.                 is raised again. This option is frequently used with high
  256.                 speed modems and/or locked baud rates.
  257.  
  258.    "/SOFT"      This is similar to the above HARD flow control, but uses
  259.                 ascii characters to control the flow. Namely, the Xon and
  260.                 Xoff characters - when XOFF is received, SZModem will stop
  261.                 transmitting and when XON is received, SZModem will resume.
  262.                 (Note: SZTURBO mode is not available with this type of
  263.                 handshaking)
  264.  
  265.    "/LOCK x"    Specifies a locked baud rate. The com port will be set to
  266.                 the baud rate specified by this parameter, and the baud rate
  267.                 specified by "BAUD x" above will be used for estimation
  268.                 purposes.
  269.  
  270.    "/RR+"       Enable receive recovery option (DEFAULT). If receive recovery
  271.                 is enabled (and then if the sender permits) then szmodem will
  272.                 allow files to be recovered/resumed at the aborted position
  273.                 rather than having to resend the entire file.
  274.  
  275.    "/RR-"       Disables the above receive recovery option.
  276.  
  277.    "/SR+'       Enable send recovery option (DEFAULT). If send recovery is
  278.                 enabled, then szmodem will allow remote zmodem's to recover
  279.                 files.
  280.  
  281.    "/SR-"       Disables the above send recovery option.
  282.  
  283. Transfer type may be any one of the following:
  284.  
  285.    "RZ"        receive zmodem file(s)
  286.    "SZ"        send zmodem file(s)
  287.  
  288. Filenames are interpreted as follows:
  289.  
  290.    Send mode:  Multiple filespecs may be present. Wildcards are allowed.
  291.  
  292.    Recv mode:  A path to the receive directory is expected. No filenames
  293.                are necessary. If you add a filename, SZModem will strip it
  294.                from the string and ignore it.
  295.  
  296. EXAMPLES:
  297. ---------
  298.  
  299. "SZMODEM PORT 4 SPEED 9600 SZ \UPLOAD\*.ZIP"
  300.  
  301.        Send all the .ZIP files in you upload directory using COM4 at
  302.   9600 baud.
  303.  
  304.  
  305. "SZMODEM SPEED 1200 RZ"
  306.  
  307.        Receive files at 1200 baud using COM1. Store them in the current
  308.   directory.
  309.  
  310.  
  311. "SZMODEM PORT 3 RZ \TEMP"
  312.  
  313.        Receive files at 2400 baud using COM2. Store them in the "\TEMP"
  314.   directory.
  315.  
  316. Files
  317. -----
  318.        SZMODEM.EXE   -  The executable code for SZModem. This is what you
  319.                         need to call to execute the protocol. Memory
  320.                         requirements should be from 130-170k depending
  321.                         on how you have szmodem set up.
  322.  
  323.        SZCONFIG.EXE  -  This program allows you to set a variety of
  324.                         SZModem's default options. Now modifies SZMODEM.EXE
  325.                         directly.
  326.  
  327.        SZMODEM.DOC   -  These docs that you are reading.
  328.  
  329.        SZMODEM.HLP   -  An ASCII help file which contains help on the SimDos
  330.                         commands.
  331.  
  332.        REGISTER.FRM  -  Registration form for registering your copy of
  333.                         SZModem.
  334.  
  335.       +SZMODEM.TRV   -  A "trivia" file which lets you play trivia during
  336.                         SZModem.
  337.  
  338.       +ROCK&POP.TRV  -  An alternate trivia file written by Michael Crosson
  339.                         of The Carrier Detect Journal.
  340.  
  341.       +APPLYCFG.EXE  -  Utility for applying SZCFG.DAT files to SZMODEM.EXE.
  342.  
  343.       +SZMOD286.EXE  -  The 286 version of SZModem.
  344.  
  345.       +LOGANA.EXE    -  The SZModem log analizer.
  346.  
  347.       +SZSUP.DOC     -  Doc file for SZSUPxxx.ARJ.
  348.  
  349.       +SZTELIX.ZIP   -  Sample telix setup for szmodem.
  350.  
  351.       *SZMODEM.LOG   -  A log created which contains a listing of files
  352.                         transferred, dates/times, etc. May be disabled
  353.                         with the "/NOLOG" option. You may set the
  354.                         path this file will be placed in with the "/SZPATH"
  355.                         option.
  356.  
  357.       *DSZ.LOG       -  If the /DL parameter was specified, this file will
  358.                         be created to allow for compatibility with the
  359.                         popular DSZ protocol.
  360.  
  361.       *SZXFER$$.LST  -  This is the "advance transfer list" file. It is
  362.                         created by the sender and if the receiver is also a
  363.                         zmodem, is sent to so the receiver may have a list
  364.                         of files to be received ahead of time.
  365.  
  366.       *FILELOG.TXT   -  If the "/FL" parameter is specified, this will will
  367.                         contain a listing of all files received (downloaded)
  368.                         by SZModem. Included is the file name, size, and
  369.                         optional description.
  370.  
  371.       (* Denotes file is CREATED by SZModem, not distributed with the package)
  372.  
  373.       (+ Denotes files supplied in the suppliemental szmodem archive,
  374.          SZSUPxxx.ARJ. They are described further within that archive)
  375.  
  376. Hardware Requirements
  377. ---------------------
  378.      Processor: 10mhz 80286 or greater suggested, but will work with any
  379.                 IBM-PC compatible machine.
  380.  
  381.      Display:   Anything should work
  382.  
  383.      Memory:    SZMODEM.EXE  130-107k
  384.  
  385. Nonstandard port addresses:
  386. ---------------------------
  387.          You must use the "IRQ x" and "ADDR x" parameters to specify a
  388.    nonstandard com port. Numbers must be in DECIMAL, not HEX. DO NOT
  389.    specify a "PORT" if you use nonstandards.
  390.  
  391.    For example:
  392.  
  393.    "SZMODEM IRQ 2 ADDR 1016" would cause szmodem to use whatever port is
  394.                              at IRQ=2 and ADDRESS=1016 ($3F8 hex)
  395.  
  396. The Overlay Version
  397. -------------------
  398.          There is now one and only one version of SZMODEM.EXE distributed
  399.    in the package. Before, we had three seperate versions configured for
  400.    various memory requirements, but from now on, there is only one.
  401.          For those of you who are curious, the version of SZModem
  402.    distributed is the overlay one (used to be SZMODOVR.EXE). I did this
  403.    since the old SZMODEM.EXE was gobbling up too much memory to be
  404.    useful and the SZMODSML.EXE version wasn't saving enough space to
  405.    justify it.
  406.  
  407. Flow Control, Handshaking, High-Speed Modems, Locked baud
  408. ---------------------------------------------------------
  409.          SZModem includes two command line options for controlling computer-
  410.    to-modem handshaking. This handshaking allows the modem to send some form
  411.    of signal to SZModem to tell SZModem to stop sending data if the modem's
  412.    buffer becomes overflowed.
  413.          If you are using a 2400 baud modem or lower, and are sending data to
  414.    this modem at 2400 baud, then no handshaking options should be necessary.
  415.    But, if you are using a high speed modem at a locked baud rate, handshaking
  416.    is VERY necessary.
  417.          The are two type of handshaking: HARD and SOFT. Hard handshaking uses
  418.    the CTS/RTS lines (i.e. wires) between your modem to control data flow and
  419.    is considered the better of the two. SOFT handshaking uses two special
  420.    ASCII characters, XON and XOFF, to control handshaking. Basically, you have
  421.    to match SZModem to the type of handshaking your modem uses.
  422.          To enable HARD handshaking, specify the "/HARD" option on the command
  423.    line. To enable SOFT handshaking, specify "/SOFT". You should only specify
  424.    one, not both.
  425.          Consult your modem manual, bbs software docs, etc for more
  426.    information on handshaking.
  427.  
  428. SZTetris!
  429. ---------
  430.          New with version 1.50, a game called "SZTetris" has been included in
  431.    the games (F8) menu. The game is your standard Tetris type game. You can
  432.    use the arrow keys to move the falling blocks, the J,K,L keys, or the
  433.    keypad w/numlock (4,5,6,2).
  434.          The game is in its eary stages and may still have a couple of
  435.    glitches in it.
  436.          NOTE: SZTetris is a processor-speed hog. If your running szmodem
  437.    at 19.2kbaud at a low cpu speed (8mhz or lower), you may get errors. On my
  438.    25mhz 386, however, I have tested szmodem at 19.2kbaud while playing
  439.    sztetris with no troubles whatsoever.
  440.  
  441.  
  442. SZTurbo
  443. -------
  444.          SZTurbo is an option that will allow you to improve file transfer
  445.    efficiency by as much as four percent. To explain how SZTurbo works,
  446.    I must discuss a little about how Zmodem itself works.
  447.          In the Zmodem specification, certain bytes cannot be transmitted
  448.    freely across the modem connection. These bytes are XON, XOFF, ZDLE (a byte
  449.    very important to Zmodem), and a few others. If for example, an XOFF
  450.    was transmitted across the modem link, it could cause difficulties.
  451.          Although these bytes may not be transmitted, they do occur in binary
  452.    files so Zmodem must find someway to transmit them. What it does is send
  453.    a ZDLE followed by byte (i.e. the XOFF) XOR 64. This translates the illegal
  454.    character to a harmless ASCII letter that may be freely sent across the
  455.    modem link.
  456.          A few quick thoughts and you should be able to see that every time
  457.    one of these "illegal" characters are encountered, two bytes (The ZDLE
  458.    and the character XOR 64) must be sent. Sending two characters instead of one
  459.    obviously adds overhead to the transfer, slowing it down.
  460.          It turns out that most of these "illegal" characters are not illegal
  461.    under most situations. Almost all current moedems are able to transfer
  462.    XONs,XOFFs, etc just fine. So basically what SZTURBO does is send these
  463.    illegal characters just like any other character. Here's a quick diagram
  464.    to help explain this:
  465.  
  466.                                      Characters sent        Character(s) sent
  467.        Character in File             without SZTurbo          with SZTurbo
  468.        -----------------          ---------------------     ----------------
  469.          ZCHAT (#14)                ZDLE (#24) "N"            ZDLE (#24) "N"
  470.          DLE   (#16)                ZDLE (#24) "P"            DLE  (#16)
  471.          XON   (#17)                ZDLE (#24) "Q"            XON  (#17)
  472.          XOFF  (#19)                ZDLE (#24) "S"            XOFF (#19)
  473.          ZDLE  (#24)                ZDLE (#24) "X"            ZDLE (#24) "X"
  474.  
  475.          As you can see, SZTurbo shortens the sequences for DLE, XON, and
  476.    XOFF from 2 characters down to one character. While this does not seem like
  477.    much, it can add up to a four percent efficiency gain. When you're paying
  478.    the long distance bill, you'll appreciate this.
  479.          Specifying "/SZTURBO" on the command line will cause your copy of
  480.    SZModem to "attempt" to engage the SZTurbo option. SZTurbo is only
  481.    available if both sides have the option specified.
  482.  
  483. Large Advance Transfer Lists
  484. ----------------------------
  485.          Starting with this version, there is support for a "large" advance
  486.    transfer list. The main difference between the normal list and the "large"
  487.    list is that the large list contains optional file descriptions as well
  488.    as the name, date, etc. The receiver or sender may browse through these
  489.    descriptions while the transfer is taking place.
  490.          The problem is, SZModem can't just make up these descriptions
  491.    itself. The sender must somehow provide SZModem with the descriptions. If
  492.    the sender is a bbs program, then the descriptions are available from
  493.    the BBS's file catalog. The descriptions must, however, still be converted
  494.    to a format that SZModem can understand.
  495.          SZModem will look for file descriptions in the file "FILEDESC.TXT"
  496.    (or "FILEDE1.TXT", "FILEDE2.TXT", etc if you are multinode) in the
  497.    directory specified by the /SZPATH option. This file follows a simple
  498.    format. It is plain ASCII with each line of the file corresponding to a
  499.    file. The filename starts at column 1 and the descriptions starts at
  500.    column 15. For example:
  501.  
  502.  
  503. ::-- Col. 1  ::--- col. 15
  504. ::           ::
  505. \/           \/
  506. SZMOD120.ZIP  Zmodem protocol with Chat, Simdos, etc
  507. GALWAR75.ZIP  Galactic Warzone version 7.5
  508. DOORDR30.ZIP  Doordriver door support routines
  509. MACH10.ZIP    Mach-10 bbs
  510.  
  511.  
  512.          When SZModem loads, providing the /NOSBL switch is not specified and
  513.    providing this file exists, the descriptions will be searched, loaded, and
  514.    sent to the receiver providing his /NORBL switch is not set.
  515.          As you have probably noticed, this format is probably not what your
  516.    bbs uses. Since I don't have information on the file formats of most BBS
  517.    packages, I had to make do with this "generic" format. Hopefully, some
  518.    bbs sysops who are programmers can write a utility to grab the necessary
  519.    descriptions out of their file catalogs and throw them into the
  520.    FILEDESC.TXT file.
  521.          Note: The FILEDESC.TXT file may be named FILEDE1.TXT or FILEDE2.TXT
  522.    depending on your configuration. The /DORINFO switch will determine which
  523.    .TXT file SZModem will look for. If no /DORINFO is specified, FILEDESC.TXT
  524.    will be used. If /DORINFO 1 was specified, FILEDE1.TXT will be loaded.
  525.          Examples:
  526.  
  527.                                                         Filedesc file used
  528.                                                         ------------------
  529.          SZMODEM SZ FOO.BAR                             FILEDESC.TXT
  530.          SZMODEM /DORINFO 1 SZ FOO.BAR                  FILEDE1.TXT
  531.          SZMODEM /DORINFO 2 SZ FOO.BAR                  FILEDE2.TXT
  532.          SZMODEM /SZPATH \protocol SZ FOO.BAR           \PROTOCOL\FILEDESC.TXT
  533.          SZMODEM /SZPATH \protocol /DORINFO 1 .....     \PROTOCOL\FILEDE1.TXT
  534.  
  535.          Now, a quick word on the /NOSBL and /NORBL switches. If you specify
  536.    /NOSBL, your copy of SZModem will not send the description info under any
  537.    circumstances. If you specify /NORBL, your SZModem will not allow another
  538.    SZModem to send the description info under any circumstances. Example:
  539.  
  540.  
  541.          Sender               Receiver                  Desc info sent
  542.          ------------------   -------------------       --------------
  543.          SZMODEM SZ ...       SZMODEM RZ ...                *YES
  544.          SZMODEM /NOSBL SZ    SZMODEM (anything)             NO
  545.          SZMODEM (anything)   SZMODEM /NORBL                 NO
  546.  
  547.          (* only if FILEDESC.TXT, FILEDE1.TXT, etc exists on sender side)
  548.  
  549.          Additional FILEDESC files may be specified using the /FILEDESC
  550.    option. Use the format "/FILEDESC x" where "x" is the path and filename
  551.    of the additional list to search. You may add as many of these additional
  552.    lists as you wish. (NOTE: Operation will occur faster if all of the
  553.    descriptions are in one file rather than many file)
  554.  
  555. File Lists
  556. ----------
  557.          If you specify @<filename> on then command line, <filename> will be
  558.    opened and any file paths contained within will be sent. For example,
  559.    suppose a textfile, "TOSEND.TXT" contained the following:
  560.  
  561.  
  562.    \DOWNLOAD\SZMOD120.ZIP
  563.    \MACH10\WELCOME.TXT
  564.    \GALWAR\TWARS.EXE
  565.  
  566.          If you called up SZModem with the command line "SZMODEM SZ
  567.    @TOSEND.TXT", SZModem would then send the three files listed above. This
  568.    allows you to specify many different filenames in an ascii file rather
  569.    than have to fit them all on the command line.
  570.          You may also specify SZModem parameters in these "file lists". You
  571.    could specify "/DORINFO 1 /SZTURBO /SZPATH \protocols", etc and then call
  572.    it up with the "@" sign rather than having to put all of those options on
  573.    the command line.
  574.  
  575. The Mail Reader
  576. ---------------
  577.          SZModem is equipped with a mail reader capable which allows the
  578.    sysop to read any messages in a fido-format message base. This feature is
  579.    only useful for BBS systems or mail point systems, and has no particular
  580.    interest to users.
  581.          With version 1.60 and above, SZModem may handle up to three
  582.    message areas.
  583.          Message areas are configured within SZConfig.exe. The options are
  584.    under the mAil selection of the Configuration menu. There will be a total
  585.    of five options presented.
  586.          "Front Door Path". If you are using the front-door mailer, then
  587.    you may specify the path to your front door directory here. If you do,
  588.    then szmodem will allow you to view your in/outbound history and your
  589.    recent activity.
  590.          "Message Area x". These configure the three message areas. There
  591.    are three fields to each entry. The first is the "path". Which is used
  592.    in fido format bases. If the base you are trying to add is fido, then
  593.    put the path here.
  594.          The second option is "name". This is the name/tag of the area.
  595.    The third option is type. Zero (0) is for no message area configured,
  596.    One (1) is for a HP format area, and two (2) is for a fido area.
  597.          "HP Message Path". If you are using a HP format message base
  598.    (currently only supported by Mach-10 and the upcoming Safari bbs), then
  599.    put the path to your HP message directory here.
  600.          Then, you may use the F9 key to enter the mail reader. The "N"
  601.    and "P" keys will move you forward or reverse in the area and the SPACE
  602.    bar will scroll a message.
  603.  
  604. Benchmarks
  605. ----------
  606.          The following chart compares the CPS readings for some various
  607.    protocols. SZMODEM ver 1.31 was used for the SZMODEM tests and DSZ1612
  608.    was used for the DSZ Zmodem, Xmodem, and ymodem tests.
  609.          The tests were performed between two AT-class machines running
  610.    at 8mhz.
  611.  
  612.                           SZMODEM    SZMODEM  DSZ     DSZ     DSZ
  613. Filename      File Size   w/SZTURBO           ZMODEM  XMODEM  YMODEM
  614. ------------  ---------   ---------  -------  ------  ------  ------
  615. SYSOP.DOC       18357        399       390      235     200    200
  616. MACHCTL.ZIP     20643        236       232      234     201    200
  617. MOUSE.COM       14249        284       274      234     202    199
  618. SIMCGA.ZIP       2406        233       233      235     200    200
  619.  
  620.  
  621. SZCONFIG.EXE
  622. ------------
  623.          Szconfig.exe is a configuration utility supplied to allow you to
  624.    make changes to the default options within szmodem. Szconfig was written
  625.    with Turbo Vision to allow for a nice, user friendly interface.
  626.          It is important to note that the new version of szconfig.exe
  627.    differs strongly from the older version supplied with Szmodem 1.50 and
  628.    previous.
  629.  
  630.          1> Changes are now made to SZMODEM.EXE directly. This means there
  631.             is no nasty szmodem.cfg file or anything else that you have
  632.             to worry about.
  633.  
  634.          2> Many more options are available. In fact, SZCONFIG is the only
  635.             way to set szmodem's sound options.
  636.  
  637.          3> You can use keyboard as well as mouse to get your way around
  638.             in SZCONFIG.
  639.  
  640.          4> By using SZCONFIG, you may enter your registration code directly
  641.             into szmodem.exe rather than having to bother with that
  642.             szreg.dat file.
  643.  
  644.          To move around in SZCONFIG, you'll need to either use a mouse or
  645.    the TAB/shift-TAB keys. Use tab to move down an option, and shift-tab to
  646.    move up an option.
  647.  
  648.  
  649. Revison History
  650. ---------------
  651.        Version 1.00  -  First public BETA release.
  652.  
  653.                         This software has not been tested very well at
  654.                         this point. There may be trouble with high speed
  655.                         modems, COM3/4 conflicts, etc. Please report any
  656.                         bugs to my bbs listed below.
  657.  
  658.        Version 1.01  -  Fixed a problem that caused the DORINFO display
  659.                         that caused the users last name and city to be
  660.                         displayed. Now, the user's full name and city is
  661.                         displayed.
  662.  
  663.        Version 1.02  -  Added the "/SZPATH" option to allow the user
  664.                         to specify what directory the SZMODEM.LOG and
  665.                         SZXFER$$.LST files will be placed in.
  666.  
  667.                         Fixed a bug which was causing runtime error
  668.                         2 that had to do with the SZXFER$$ list.
  669.  
  670.                         Added "/DELAYTIME" option to specify time that
  671.                         SZModem will delay after a transmission is completed,
  672.                         waiting for a keypress.
  673.  
  674.                         The CHAT indicator will now blink when a remote user
  675.                         is typing in chat and the local user is in another
  676.                         window.
  677.  
  678.        Version 1.10  -  Added FREE and SIZE commands to simdos. See the
  679.                         SZMODEM.HLP file for more information.
  680.  
  681.                         Various cosmetic improvements.
  682.  
  683.                         Made the SIMDOS parser a bit more intelligent. It can
  684.                         now process commands without spaces between parameters
  685.                         such as "DIR/W" or "CD..".
  686.  
  687.                         Added DELNUL command to delete zero-length files.
  688.  
  689.                         SZModem now displays a small message if the user does
  690.                         not specify SZ or RZ. This helps new users to know
  691.                         they do in fact need to specify SZ/RZ.
  692.  
  693.                         SZModem /HELP command now available. Displays a small
  694.                         help screen of some of SZModem's command line
  695.                         parameters.
  696.  
  697.                         Major revisions to the actual ZMODEM transfer code.
  698.  
  699.                         CRC32 now used rather than CRC16 and the block check
  700.                         display now correctly reflects this. (Note: If the
  701.                         sender requests CRC16, the receiver will be stuck with
  702.                         CRC16 also)
  703.  
  704.                         Error correction will now function properly in both
  705.                         CRC32 and CRC16 modes.
  706.  
  707.                         "Last frame" display on receiver now functions
  708.                         properly.
  709.  
  710.                         Default delay time changed from 10 seconds to 5
  711.                         seconds. (See /DELAYTIME above)
  712.  
  713.                         Added an overlay version of the program (SZMODOVR.EXE)
  714.                         to allow for systems with less available memory.
  715.  
  716.        Version 1.20     Added SZTurbo option to increase transfer efficiency
  717.                         by as much as 4%. See the SZTurbo section of this doc
  718.                         for more info.
  719.  
  720.                         Added "/NBS" option to allow users to restrict
  721.                         SZModem's block size down to the standard 1024 bytes/
  722.                         block like normal zmodem.
  723.  
  724.                         The minor version identifier (i.e. .20) is now sent
  725.                         along with the major version identified (i.e. 1)
  726.  
  727.                         Message screen (F6) code revised to reduce flickering
  728.                         and add smoother scrolling.
  729.  
  730.                         Two ZChallenges are now sent between copies of SZModem
  731.                         to allow for additional information to be passed -
  732.                         version numbers, flags, etc.
  733.  
  734.                         Added provisions for LARGE Advance transfer lists.
  735.                         (See Above). The new large list allows the sender to
  736.                         send file descriptions along with the usual file info.
  737.  
  738.                         Fixed the TLIST and RLIST displays so they scroll the
  739.                         corrent number of lines.
  740.  
  741.                         Added "/FL" switch for a received file log.
  742.  
  743.        Version 1.21     Added more information to the log display.
  744.  
  745.                         Fixed a bug which caused file descriptions to be
  746.                         garbage when receiving file from a normal Zmodem.
  747.  
  748.                         Added ability to process file lists. (See above:
  749.                         File lists)
  750.  
  751.                         Added /FILEDESC option to specify additional
  752.                         filedesc files.
  753.  
  754.                         Added the /CHECKSNOW option to enable snow checking.
  755.  
  756.                         Fixed the DELNUL command in SDOS so that it does not
  757.                         try to delete files as they are being received.
  758.  
  759.                         Control-Break is now trapped and no longer aborts the
  760.                         program.
  761.  
  762.                         Added CTRL-G option to allow users to page in chat
  763.                         mode.
  764.  
  765.        Version 1.30     Default internal output buffer size has been
  766.                         changed from 256 bytes to 512 bytes.
  767.  
  768.                         Revised overlay code so hopefully SZMODOVR.EXE can
  769.                         be used by multiple nodes on a network without
  770.                         difficulty.
  771.  
  772.                         Added file compression capability. LZW compression
  773.                         routines will speed up the transmission of most
  774.                         non-compressed data.
  775.  
  776.                         Default internal input/output buffer sizes
  777.                         re-adjusted to 1k and 6k respectively.
  778.  
  779.                         Added a simple sysop mail reader to allow the sysop
  780.                         to read mail while transfer is in progress.
  781.  
  782.                         Fixed a bug with the ZChallenges that caused SZModem
  783.                         to not abort if the Zchallenges were not responded
  784.                         to.
  785.  
  786.                         Included a "Small" version which is even smaller than
  787.                         the overlay version. Left out are the games module
  788.                         and the mail reader module. The filename is
  789.                         SZMODSML.EXE.
  790.  
  791.                         Added a zip viewer to SimDos. The command "ZIPVIEW
  792.                         <filename>" will display the file directory of a
  793.                         zip file.
  794.  
  795.        Version 1.31     Added DEBUG command to simdos to allow users to
  796.                         browse through files in a hexadecimal mode.
  797.  
  798.                         EGA/VGA 43/50 line modes are available with the
  799.                         /EGA command line switch.
  800.  
  801.                         If SZTURBO is enabled and soft (Xon/Xoff) flow
  802.                         control is enabled, the SZTURBO will automatically
  803.                         be disabled.
  804.  
  805.                         Added SZCONFIG.EXE configuration utility.
  806.  
  807.                         /DL command line will enable a DSZ.LOG file log
  808.                         for compatibility with various bbs programs.
  809.  
  810.        Version 1.40     REMOVED FOSSIL SUPPORT
  811.                         There was just too little demand for use of the fossil
  812.                         interface routines and considering the overhead it was
  813.                         adding (an additional jump and compare for every
  814.                         async function can add up), the code was removed and
  815.                         the INTERNAL routines are now accessed directly.
  816.  
  817.                         Major serial code revisions. On locked baud modems,
  818.                         the keyboard I/O shouldn't slow down quite as bad
  819.                         as before. Chat may still appear choppy though.
  820.  
  821.                         Added a DORINFOx.DEF path to SZCONFIG.EXE. You may
  822.                         now set the path that SZModem will look for
  823.                         DORINFOx.DEF with SZCONFIG.EXE.
  824.  
  825.                         Added CFGPATH parameter to specify path to
  826.                         the SZMODEM.CFG file.
  827.  
  828.        Version 1.41     Added information on HandShaking to docs.
  829.  
  830.                         Added handshaking options to SZCONFIG.EXE.
  831.  
  832.                         Added locked baud capabilities with the "/LOCK"
  833.                         parameter.
  834.  
  835.        Version 1.42     Fixed minor bug with command line options. Command
  836.                         line options now override environment vars at all
  837.                         times (i.e. SZMODEM port 2 would override SET DSZPORT=
  838.                         1)
  839.  
  840.                         If transfer times out, szmodem will return errorlevel
  841.                         of 1.
  842.  
  843.                         DSZLOG is now appended to rather than rewritten
  844.                         by SZMODEM.
  845.  
  846.                         Fixed problem with /CFGPATH causing files to be
  847.                         written to the root directory.
  848.  
  849.        Version 1.43     Added abbreviations "/SZT" for /SZTURBO and "/DT" for
  850.                         delay time.
  851.  
  852.                         Added the "BROWSE" command to simdos. Browse will let
  853.                         you scroll up and down within a file.
  854.  
  855.                         Fixed problem with received file path.
  856.  
  857.                         Altered some code in the Z_challenge routine to
  858.                         compensate for a bug in QMODEM (Qmodem does not
  859.                         understand Z_Challenge requests which caused
  860.                         szmodem to abort the xfer)
  861.  
  862.                         Altered some code to hopefully fix a glitch or
  863.                         two at high speeds. (14,400 and 19,200 baud may
  864.                         have gotten some aborts due to "header is fubar"
  865.                         messages. This should now be fixed)
  866.  
  867.        Version 1.44     Some cosmetic improvements and minor bug fixes.
  868.  
  869.                         Added registration request.
  870.  
  871.                         Added support for nonstandard IRQ/address
  872.  
  873.        Version 1.50     Added SZTETRIS! Available from the games menu!
  874.  
  875.                         default delay time lowered to 2 seconds.
  876.  
  877.                         Replaced the more-or-less meaningless ZFRAME
  878.                         status item with a realtime-updated CPS display.
  879.  
  880.                         With the internal tetris, SZMODEM.EXE got too big
  881.                         to be usable; with some efficiency fixes, SZMODOVR
  882.                         and SZMODSML became about the same, so now we only
  883.                         distribute one version.
  884.  
  885.                         The SZXFER$$.LST transfer list is now deleted after
  886.                         szmodem is completed.
  887.  
  888.                         Shrunk the size of the control-key line at the
  889.                         bottom of the screen a bit to provide for additional
  890.                         screen space in sztetris, simdos, etc. Two extra
  891.                         lines can really make a difference!
  892.  
  893.        Version 1.60     Fixed SZTetris so it will work correctly on
  894.                         monochrome systems.
  895.  
  896.                         Totally re-wrote SZCONFIG.EXE using Turbo Vision. A
  897.                         section is provided above describing the new
  898.                         configuration utility.
  899.  
  900.                         Added sound effects!
  901.  
  902.                         A registration string is now sent across the
  903.                         chat channel at the start of transfer.
  904.  
  905.                         word-wrapping now works in the chat section.
  906.  
  907.                         Added colored directories to SIMDOS so it looks a
  908.                         bit better. (note: colored dirs can be turned
  909.                         on and off from SZCONFIG.EXE)
  910.  
  911.                         Recover option can be turned on/off at the
  912.                         command line and in SZCONFIG.EXE.
  913.  
  914.                         Might have fixed a glitch with the errorlevels
  915.                         not working correctly.
  916.  
  917.                         Fixed the DSZLOG so that files received are
  918.                         denoted by a "Z" and files sent are denoted as
  919.                         a "z".
  920.  
  921.                         Added a display after szmodem exits to tell the
  922.                         errorlevel returned.
  923.  
  924.                         Taking a bit of a risk, I turned off i/o checking
  925.                         (turbo's {$I-}) throghout szmodem to gain a little
  926.                         speed and reduce program size a bit. Overall EXE
  927.                         size dropped by 6k.
  928.  
  929.                         Lowered the default ouptput buffer size to 512
  930.                         bytes to see how it works out. Might provide for
  931.                         better chat response and more reliable error
  932.                         recovery.
  933.  
  934.                         Added a "CMD:" field to the szmodem.log file which
  935.                         shows if szmodem was invoked with "SZ", "RZ" or
  936.                         none.
  937.  
  938.                         Fixed up the four-in-a-row game a little. It should
  939.                         now detect diagonals and ties.
  940.  
  941.                         A file "SZSUPxxx.ARJ" is now being produced which
  942.                         includes some supplimental szmodem utilities and
  943.                         files.
  944.  
  945.                         Switched to Turbo Pascal version 6.0. Don't know
  946.                         if it'll make much of a difference, but it may make
  947.                         some changes.
  948.  
  949.                         Turned off the hardware cursor and put our own
  950.                         software driven cursor in its place. Chat and
  951.                         simdos look a bit better now.
  952.  
  953.                         Reworked the MAIL system a bit. I've added a few
  954.                         statistical functions for people using the Front-
  955.                         Door mailer and I've changed it so you can have
  956.                         up to three message areas.
  957.  
  958.                         Removed LZW compression.
  959.  
  960.                         Fixed a slight bug with the ZIP viewer.
  961.  
  962. Credit to Other Authors
  963. -----------------------
  964.  
  965.        1) Turbo Pascal Zmodem Source. This software was built up from a rather
  966.           buggy source code of Zmodem in turbo pascal. The code did not list
  967.           an author.
  968.  
  969.        2) ASYNC11 package by Mark Shultz. This excellent package provides
  970.           for portions of SZModem's async support. The fossil interface is
  971.           written by myself, but I also integrated these ASYNC11 internal
  972.           routines to provide support for users without fossils.
  973.  
  974.        3) Chuck Forsberg. Chuck originally developed the zmodem protocol
  975.           specs which szmodem is based on.
  976.  
  977. Registration
  978. ------------
  979.        SZModem represents many hours of programming and debugging. If you find
  980. this software useful, then please register your copy to support my efforts. I
  981. can not continue to work on major projects like this without sufficient
  982. compensation.
  983.        The requested registration fee is $25. That will get you a disk
  984. containing the latest version of SZMODEM and place you on my mailing list for
  985. notification of upcoming releases. Included will be a utility which will
  986. allow you to register your copy of szmodem as well as any copies which you
  987. may receive in the future. Both disk formats (3.5" and 5.25" will be included)
  988.        To register, please mail in the included REGISTER.FRM to the following
  989. address along with you check. (Sorry, but I cannot except credit cards)
  990.  
  991.                       Scott Baker
  992.                       6431 Tierra Catalina #48
  993.                       Tucson, AZ 85718
  994.  
  995.        I may also be reached through my online bulletin board:
  996.  
  997.                       The Not-Yet-Named BBS
  998.                       (602) 577-3650 <Node 1> 1200/2400/9600 baud (v.32)
  999.                       (602) 577-3419 <Node 2> 2400/9600/14400 baud (USR DUAL)
  1000.                       Tucson, AZ
  1001.  
  1002.        The BBS always has the latest copy of SZModem (and any of my other
  1003. projects) available for downloads. We are also part of FidoNet and RBBSNET
  1004. and offer several file and message areas.